package com.langchain4j.core.llm.model;

import lombok.Data;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 嵌入结果
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EmbeddingResult {
    
    /**
     * 嵌入向量
     */
    private List<Float> embedding;
    
    /**
     * 使用的模型名称
     */
    private String modelName;
    
    /**
     * 输入文本
     */
    private String inputText;
    
    /**
     * 使用的token数量
     */
    private Integer tokenCount;
    
    /**
     * 生成时间
     */
    private LocalDateTime generatedAt;
    
    /**
     * 是否成功
     */
    private Boolean success;
    
    /**
     * 错误信息
     */
    private String errorMessage;
    
    /**
     * 创建成功结果
     */
    public static EmbeddingResult success(List<Float> embedding, String modelName, String inputText, Integer tokenCount) {
        return EmbeddingResult.builder()
                .embedding(embedding)
                .modelName(modelName)
                .inputText(inputText)
                .tokenCount(tokenCount)
                .generatedAt(LocalDateTime.now())
                .success(true)
                .build();
    }
    
    /**
     * 创建失败结果
     */
    public static EmbeddingResult failure(String errorMessage, String modelName, String inputText) {
        return EmbeddingResult.builder()
                .modelName(modelName)
                .inputText(inputText)
                .generatedAt(LocalDateTime.now())
                .success(false)
                .errorMessage(errorMessage)
                .build();
    }
} 